在Ubuntu Server下搭建LAMP环境

一、前言

1.1LAMP详解

经过多年是Web技术发展,在业内被广泛使用的一种Web服务器解决方案之一(LNMP也非常受欢迎),由一些独立的系统或软件组合而成。

软件组件:

  1. Linux: Linux 是免费开源软件,这意味着源代码可用的操作系统。

  2. Apache: Apache 是使用中最受欢迎的一个开放源码的WEB服务器软件。

  3. MySQL: MySQL 是多线程、多用户的SQL数据库管理系统。

  4. PHP: PHP 是一种编程语言最初设计生产动态网站。PHP 是主要用于服务器端的应用程序软件。Perl 和 Python 类似。

1.2LAMP工作原理

二、实验环境:

发行版本: Ubuntu 12.04.5 LTS

内核版本:3.13.0-32-generic

ip:192.168.198.5

三、Ubuntu server 管理员权限解读

为了安全Ubuntu 官方不推荐使用root账户远程登陆,安装系统的时候会强制要设置一个不同于root的普通用户。

操作ubuntu的预备知识:

1)命令行

dgnet@dgnet-ip:~$

dgnet表示用户名

@dgnet-ip 表示@主机名

~ 表示当前目录

$ 表示用户类型标记

-$表示普通用户,#表示超级管理员

2)通过passwd命令修改账户密码

2.1)先查看当前用户

dgnet@dgnet-ip:~$ pwd
/home/dgnet

2.2)让当前用户获得临时超级管理员权限

dgnet@dgnet-ip:~$ sudo passwd root
[sudo] password for dgnet:          #输入用户dgnet的秘密
Enter new UNIX password:            #给root用户设置新密码
Retype new UNIX password:           #确认root密码
passwd: password updated successfully

注意事项:

1)普通账户没有管理员权限

2)默认情况下ROOT账户无法登陆

3)su (switch user)切换到超级管理员

4)sudo (switch user and do) 以超级管理员身份执行

5)sudo弥补了su产生的多账户安全问题

使用su命令所有管理员都必须知道root账户的密码,sudo使得普通管理员使用自己的秘密也可以获得超级管理员权限。

四、安装软件

1)先安装apt-get软件安装工具

gnet@dgnet-ip:~$ sudo apt-get update

2) 使用apt-get软件安装工具安装apache2

dgnet@dgnet-ip:~$ sudo apt-get install apache2

检查一下apache的版本

dgnet@dgnet-ip:~$ apache2 -v
Server version: Apache/2.2.22 (Ubuntu)
Server built:   Jul 15 2016 15:32:45

打开浏览器输入ip地址检查apache是否正常工作

3)使用apt-get软件安装工具安装php5

dgnet@dgnet-ip:~$ sudo apt-get install php5

检查一下php的版本

dgnet@dgnet-ip:~$ php5 -v
PHP 5.3.10-1ubuntu3.26 with Suhosin-Patch (cli) (built: Feb 13 2017 20:37:53) 
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2012 Zend Technologies

检查一下apache是否加载了libphp5.so这个模块

dgnet@dgnet-ip:~$ cat /etc/apache2/mods-enabled/php5.load
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so

4)使用apt-get软件安装工具安装mysql-server

dgnet@dgnet-ip:~$ sudo apt-get install mysql-server

先给mysql-server设置密码(baidu.com@ip)

接着安装一下mysql的扩展

dgnet@dgnet-ip:~$ sudo apt-get install php5-mysql

检查一下mysql.so模块是否正常加载

dgnet@dgnet-ip:~$ cat /etc/php5/conf.d/mysql.ini
; configuration for php MySQL module
extension=mysql.so

确保php5与mysql能正常工作,重启一下mysql

dgnet@dgnet-ip:~$ sudo service mysql restart

重启apache

dgnet@dgnet-ip:~$ sudo service mysql restart

到目前lamp软件已经安装完成,分开各个软件安装是为了更好了理解各个软件之间的关系,我们清楚了解了lamp之后可以使用一条命令就把lamp安装好。

dgnet@dgnet-ip:~$ sudo apt-get install -y apache2 php5 mysql-server php5-mysql

或者

dgnet@dgnet-ip:~$ sudo tasksel install -y lamp-servver

五、其他设置

1)创建phpinfo服务器探针

dgnet@dgnet-ip:~$ cd /var/www
dgnet@dgnet-ip:/var/www$ sudo vim info.php
[sudo] password for dgnet: 

info.php代码

<?phpecho mysql_connect('localhost','root','baidu.com@ip') ?  
'Mom, dont worry about my database, either' : 
'Last year I bought a watch';
 phpinfo();

在浏览器中打开info.php查看,php与数据库是否正常

2)PHP添加常用扩展

dgnet@dgnet-ip:~$ sudo apt-get install php5-gd curl libcurl3-dev php5-curl

安装完成重启apache

dgnet@dgnet-ip:~$ sudo service apache2 restart

浏览器中查看扩展是否工作正常

六、LAMP环境配置文件

1)Ubuntu系统配置文件目录:/etc

2)各组件配置文件位置

-Apache /etc/apache2

-MYSQL /etc/mysql

-PHP /etc/php5

3)查看apache

dgnet@dgnet-ip:~$ cd /etc/apache2
dgnet@dgnet-ip:/etc/apache2$ ll

apache工作过程:

apache核心配置:

-mods-* Apache模块

-sites-* 虚拟主机

关键词 available 可以使用的;enabled 已启用的

4)MYSQL核心配置文件 my.cnf

5)php核心配置文件 php.ini

6)配置apache虚拟主机

7)手动模拟DNS,修改本地hosts文件

浏览器查看上面三个域名,都是指向ip 192.168.198.5

8)为(oa bbs video)服务器创建目录

dgnet@dgnet-ip:~$ cd /var
dgnet@dgnet-ip:/var$ sudo mkdir -p /wwwroot/{video,bbs,oa}
dgnet@dgnet-ip:/var$ cd /wwwroot/
dgnet@dgnet-ip:/wwwroot$ ll
dgnet@dgnet-ip:/wwwroot$ cd video/
dgnet@dgnet-ip:/wwwroot/video$ sudo vim index.html
dgnet@dgnet-ip:/wwwroot/video$ cd ../bbs
dgnet@dgnet-ip:/wwwroot/bbs$ sudo vim index.html
dgnet@dgnet-ip:/wwwroot$ cd oa
dgnet@dgnet-ip:/wwwroot/oa$ sudo vim index.html

9)开始配置虚拟主机

dgnet@dgnet-ip:/wwwroot/oa$ cd /etc/apache2/sites-available/
dgnet@dgnet-ip:/etc/apache2/sites-available$ ll
ls: 初始化月份字符串出错
总用量 20
drwxr-xr-x 2 root root 4096  7Ղ 17 15:00 ./
drwxr-xr-x 7 root root 4096  7Ղ 17 15:00 ../
 -rw-r--r-- 1 root root  950  2Ղ  7  2012 default
 -rw-r--r-- 1 root root 7469  2Ղ  7  2012 default-ssl

复制defult文件作为video bbs oa 三个虚拟主机的蓝本

dgnet@dgnet-ip:/etc/apache2/sites-available$ sudo cp default video
dgnet@dgnet-ip:/etc/apache2/sites-available$ sudo cp default bbs
dgnet@dgnet-ip:/etc/apache2/sites-available$ sudo cp default oa

编辑video

dgnet@dgnet-ip:/etc/apache2/sites-available$ sudo vim video

虚拟配置如下:

<VirtualHost *:80>
   ServerName video.lsz.com
   ServerAdmin webmaster@localhost

    DocumentRoot /wwwroot/video
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /wwwroot/video/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

编辑bbs:

dgnet@dgnet-ip:/etc/apache2/sites-available$ sudo vim bbs

虚拟配置如下:

<VirtualHost *:80>
   ServerName  bbs.lsz.com
   ServerAdmin webmaster@localhost

    DocumentRoot /wwwroot/bbs
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /wwwroot/bbs/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

编辑oa:

dgnet@dgnet-ip:/etc/apache2/sites-available$ sudo vim oa

虚拟配置如下:

<VirtualHost *:80>
    ServerName  oa.lsz.com
    ServerAdmin webmaster@localhost

    DocumentRoot /wwwroot/oa
    <Directory />
            Options FollowSymLinks
            AllowOverride None
    </Directory>
    <Directory /wwwroot/oa/>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride None
            Order allow,deny
            allow from all
    </Directory>

10)启用虚拟配置文件

dgnet@dgnet-ip:/etc/apache2/sites-available$ cd ../sites-enabled/
dgnet@dgnet-ip:/etc/apache2/sites-enabled$ sudo ln -s ../sites-available/video video
dgnet@dgnet-ip:/etc/apache2/sites-enabled$ sudo ln -s ../sites-available/bbs bbs
dgnet@dgnet-ip:/etc/apache2/sites-enabled$ sudo ln -s ../sites-available/oa oa
dgnet@dgnet-ip:/etc/apache2/sites-enabled$ ll
ls: 初始化月份字符串出错
总用量 8
drwxr-xr-x 2 root root 4096  7Ղ 17 18:14 ./
drwxr-xr-x 7 root root 4096  7Ղ 17 15:00 ../
lrwxrwxrwx 1 root root   26  7Ղ 17 15:00 000-default -> ../sites-available/default
lrwxrwxrwx 1 root root   22  7Ղ 17 18:14 bbs -> ../sites-available/bbs
lrwxrwxrwx 1 root root   21  7Ղ 17 18:14 oa -> ../sites-available/oa
lrwxrwxrwx 1 root root   24  7Ղ 17 18:14 video -> ../sites-available/video
dgnet@dgnet-ip:/etc/apache2/sites-enabled$ sudo service apache2 restart

浏览器中查看对应的域名:

bbs.lsz.com

video.lsz.com

oa.lsz.com

11)安装数据库管理工具phpmyadmin

dgnet@dgnet-ip:~$ sudo apt-get install phpmyadmin
dgnet@dgnet-ip:~$ cd /var/www
dgnet@dgnet-ip:/var/www$ sudo ln -s /usr/share/phpmyadmin phpmyadmin

浏览器打开

开启MySQL的remote access

dgnet@dgnet-ip:/var/www$ sudo vim /etc/mysql/my.cnf

找到bind-address注释

#bind-address           = 127.0.0.1

使用phpmyadmin用户密码登陆 (root,baidu.com@ip)

添加一个用户linshizhe 允许公网ip 访问

重启mysql重新加载配置:

dgnet@dgnet-ip:/var/www$ sudo service mysql restart

通过Navicat测试远程连接数据库

到这里lamp基本就已经部署完成了!!!

如果您觉得这篇文章对您有帮助,不妨支持我一下!
------ 本文结束 ------

版权声明

Stefanie'Notes by Stefanie is licensed under a Creative Commons BY-NC-ND 4.0 International License.
Stefanie创作并维护的Stefanie'Notes博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证
本文首发于Stefanie'Notes 博客( https://linshizhe.github.io/ ),版权所有,侵权必究。